import sys
import os
from os.path import getsize, join


# from os.path import getsize, join

# 处理资源文件路径
def resource_path(relative_path):
    """
    确定应用程序在打包成可执行文件或直接运行时资源文件的路径。
    :param relative_path: 资源文件的相对路径
    :return: 资源文件的绝对路径
    """
    # 检查应用程序是否是打包后的可执行文件
    if hasattr(sys, 'frozen'):
        return os.path.join(sys._MEIPASS, relative_path)  # skipcq: PYL-W0212
    return os.path.join(os.path.abspath('.'), relative_path)


# 获取指定目录的大小
def get_dir_size(dir_path):
    """
    获取已安装应用程序所在目录的大小。
    :param dir_path: 目录的路径
    :return: 目录的总大小（字节）
    """
    dir_size = 0
    # 遍历目录及其子目录，累加每个文件的大小
    for root, _, files in os.walk(dir_path):
        dir_size += sum([getsize(join(root, name)) for name in files])
    return dir_size
